package com.adkun.community.entity;

// 封装分页信息

public class Page {

  // 解决页面传入问题
  // 当前页码
  private int current = 1; // 默认第1页
  // 显示上限
  private int limit = 10;
  // 数据的总数（查出来）（用于计算总页数）
  private int rows;
  // 查询路径（用于复用分页链接）（不用把每个页面上的按钮都带一个链接）
  private String path;

  public int getCurrent() {
    return current;
  }

  public void setCurrent(int current) {
    if (current >= 1) {
      this.current = current;
    }
  }

  public int getLimit() {
    return limit;
  }

  public void setLimit(int limit) {
    if (limit >= 1 && limit <= 100) {
      this.limit = limit;
    }
  }

  public int getRows() {
    return rows;
  }

  public void setRows(int rows) {
    if (rows >= 0) {
      this.rows = rows;
    }
  }

  public String getPath() {
    return path;
  }

  public void setPath(String path) {
    this.path = path;
  }

  // 补充几个方法
  public int getOffset() {
    // 获取当前页的起始行
    // current * limit - limit
    return (current - 1) * limit;
  }

  public int getTotal() {
    // 获取总的页数
    // rows / limit [+1]
    if (rows % limit == 0) {
      return rows / limit;
    } else {
      return rows / limit + 1;
    }
  }

  // 显示第几页到第几页
  // 如当前页为8,那么下方只显示6 7 8 9 10
  public int getFrom() {
    // 获取起始页码
    int from = current - 2;
    return from > 1 ? from : 1;
  }

  public int getTo() {
    // 获取结束页码
    int to = current + 2;
    int total = getTotal();
    return to < total ? to : total;
  }
}
